home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-09-27 | 1.9 KB | 62 lines |
- //
- // dynamic generation of geometry nodes
- //
-
- import java.util.*;
- import vrml.*;
- import vrml.node.*;
- import vrml.field.*;
-
- public class DynamicGen extends Script{
- MFNode addSphere;
- Random randomNumGenerator = new Random();
- float posX = 0.0f;
-
- public void initialize(){
- // get the reference of the event-out 'addSphere'.
- addSphere = (MFNode)getEventOut("addSphere");
- }
-
- public void processEvent(Event e){
- if(e.getName().equals("touched") == true){
- String sphereDesc1 =
- "Transform {" +
- " translation ";
- String sphereDesc2 =
- " 0.0 0.0 " +
- " children[" +
- " Shape{geometry Sphere{}" +
- " appearance Appearance{" +
- " material Material{diffuseColor ";
- String sphereDesc3 =
- " }" +
- " }" +
- " }" +
- " ]" +
- "}";
-
- float red = randomNumGenerator.nextFloat();
- float green = randomNumGenerator.nextFloat();
- float blue = randomNumGenerator.nextFloat();
-
- Browser browser = getBrowser();
- BaseNode baseNodes[];
-
- // next position.
- posX += 3.0f;
-
- try{
- baseNodes = browser.createVrmlFromString(sphereDesc1 + posX +
- sphereDesc2 + red + " " +
- green + " " +
- blue + sphereDesc3);
- if(null != baseNodes) {
- addSphere.setValue(baseNodes);
- }
- } catch (Exception ex) {
- ex.printStackTrace() ;
- }
- }
- }
- }
-